baf15411ca9eda7664ed4fbe73bea36b34b79ec4,plugins/org.eclipse.xtext.ui.common/src/org/eclipse/xtext/ui/common/editor/codecompletion/AbstractProposalProvider.java,AbstractProposalProvider,doSortAndFilter,#List#EObject#String#IDocument#number#,232
Before Change
AbstractElement abstractElement = xtextCompletionProposal.getAbstractElement();
EObject grammarElement = currentLeafNode.getGrammarElement();
// at the end of the last element we want to filter only the CompletionProposal for the same grammar element
if (((isCursorAtTheEndOfTheLastElement && abstractElement.equals(grammarElement)) || !isCursorAtTheEndOfTheLastElement)
&& !completionProposal.getDisplayString().startsWith(currentLeafNode.getText())) {
After Change
AbstractNode lastCompleteNode = ParseTreeUtil.getLastCompleteNodeByOffset(rootNode, offset);
LeafNode currentLeafNode = ParseTreeUtil.getCurrentNodeByOffset(rootNode, offset);
EObject grammarElement = GrammarUtil.containingAssignment(currentLeafNode.getGrammarElement());
if (null==grammarElement) {
grammarElement = currentLeafNode.getGrammarElement();
}
boolean atTheEndOfTheLastCompleteNode = currentLeafNode == lastCompleteNode;